using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Icbf.EXTUD.Entity;
using UD.Utilities.Exceptions;
using UD.EXTUD.DataAccess;

namespace UD.EXTUD.Business
{
    public class CursoBLL
    {
        private CursoDAL vCursoDAL;
        public CursoBLL()
        {
            vCursoDAL = new CursoDAL();
        }
        public int InsertarCurso(Curso pCurso)
        {
            try
            {
                return vCursoDAL.InsertarCurso(pCurso);
            }
            catch (UserInterfaceException)
            {
                throw;
            }
            catch (Exception ex)
            {
                 throw new GenericException(ex);
            }
        }
        public int ModificarCurso(Curso pCurso)
        {
            try
            {
                return vCursoDAL.ModificarCurso(pCurso);
            }
            catch (UserInterfaceException)
            {
                throw;
            }
            catch (Exception ex)
            {
                 throw new GenericException(ex);
            }
        }
        public int EliminarCurso(Curso pCurso)
        {
            try
            {
                return vCursoDAL.EliminarCurso(pCurso);
            }
            catch (UserInterfaceException)
            {
                throw;
            }
            catch (Exception ex)
            {
                 throw new GenericException(ex);
            }
        }

        public Curso ConsultarCurso(int pIdCurso)
        {
            try
            {
                return vCursoDAL.ConsultarCurso(pIdCurso);
            }
            catch (UserInterfaceException)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw new GenericException(ex);
            }
        }

        public List<Curso> ConsultarCursos(int? pIdTipoCurso, String pNombreCurso, DateTime? pFechaInicioCurso, DateTime? pFechaFinalizacionCurso, Decimal? pValorCurso, int? pIdProyectoCurricular)
        {
            try
            {
                return vCursoDAL.ConsultarCursos(pIdTipoCurso, pNombreCurso, pFechaInicioCurso, pFechaFinalizacionCurso, pValorCurso, pIdProyectoCurricular);
            }
            catch (UserInterfaceException)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw new GenericException(ex);
            }
        }
    }
}
